package com.fzrskj.cloud.free.core.enums;

/**
 * AliyunDomainRecordTypeEnum.
 *
 * @author wzj.
 *         Created on 201/02/25 0002.
 */
public enum AliyunDomainRecordTypeEnum {

    /**
     * IPv4解析
     */
    A("A", "A"),
    /**
     * 别名解析.
     */
    CNAME("CNAME", "CNAME"),
    /**
     * IPv6解析.
     */
    AAAA("AAAA", "AAAA"),
    /**
     * 子域名指定DNS解析.
     */
    NS("NS", "NS"),
    /**
     * 邮件服务解析.
     */
    MX("MX", "MX"),
    /**
     * 记录提供特定的服务的服务器.
     */
    SRV("SRV", "SRV"),
    /**
     * 文本解析.
     */
    TXT("TXT", "TXT"),
    /**
     * CA证书颁发授权验证.
     */
    CAA("CAA", "CAA"),
    /**
     * 显性URL转发
     */
    REDIRECT_URL("REDIRECT_URL", "显性URL转发"),
    /**
     * 隐性URL转发
     */
    FORWARD_URL("FORWARD_URL", "隐性URL转发");

    /**
     * 类型.
     */
    private String type;

    /**
     * 类型名称.
     */
    private String typeName;

    /**
     * 解析类型.
     * @param status 类型值.
     */
    AliyunDomainRecordTypeEnum(String status, String statusName) {
        this.type = status;
        this.typeName = statusName;
    }

    /**
     * 获取类型.
     * @return type.
     */
    public String getType() {
        return this.type;
    }

    /**
     * 获取类型名称.
     * @return typeName.
     */
    public String getTypeName() {
        return this.typeName;
    }

    /**
     * 通过类型值获取类型名称.
     * @param type value.
     * @return type name.
     */
    public static String getTypeName(String type) {
        for (AliyunDomainRecordTypeEnum item : AliyunDomainRecordTypeEnum.values()) {
            if (item.getType().equals(type)) {
                return item.getTypeName();
            }
        }
        return null;
    }
}
